A Haskell Hosted DSL for Writing Transformation Systems
نویسنده
چکیده
KURE is a Haskell hosted Domain Specific Language (DSL) for writing transformation systems based on rewrite strategies. When writing transformation systems, a significant amount of engineering effort goes into setting up plumbing to make sure that specific rewrite rules can fire. Systems like Stratego and Strafunski provide most of this plumbing as infrastructure, allowing the DSL user to focus on the rewrites rules. KURE is a strongly typed strategy control language in the tradition of Stratego and Strafunski. It is intended for writing reasonably efficient rewrite systems, makes use of type families to provide a delimited generic mechanism for tree rewriting, and provides support for efficient identity rewrite detection.
منابع مشابه
Implementing Explicit and Finding Implicit Sharing in Embedded DSLs
Aliasing, or sharing, is prominent in many domains, denoting that two differently-named objects are in fact identical: a change in one object (memory cell, circuit terminal, disk block) is instantly reflected in the other. Languages for modelling such domains should let the programmer explicitly define the sharing among objects or expressions. A DSL compiler may find other identical expressions...
متن کاملEmbedding a Hardware Description Language in Template Haskell
Hydra is a domain-specific language for designing digital circuits, which is implemented by embedding within Haskell. Many features required for hardware specification fit well within functional languages, leading in many cases to a perfect embedding. There are some situations, including netlist generation and software logic probes, where the DSL does not fit exactly within the host functional ...
متن کاملEngineeringPrototyping Real - Time Vision Systems : An Experiment in DSL
We describe the enhancement of XVision, a large library of C++ code for real-time vision processing, into FVi-sion (pronounced \\ssion"), a fully-featured domain-speciic language embedded in Haskell. The resulting prototype system substantiates the claims of increased modularity, eeective code reuse, and rapid prototyping that characterize the DSL approach to system design. It also illustrates ...
متن کاملFunctional BIP: Embedding connectors in functional programming languages
This paper presents a theoretical foundation for functional language implementations of BehaviourInteraction-Priority (BIP). We introduce a set of connector combinators describing synchronisation, data transfer, priorities and dynamicity in a principled way. A static type system ensures the soundness of connector semantics. Based on this foundation, we implemented BIP as an embedded domain spec...
متن کاملExperience Report: Playing the DSL Card A Domain Specific Language for Component Configuration
This paper describes our experience using a functional language, Haskell, to build an embedded, domain-specific language (DSL) for component configuration in large-scale, real-time, embedded systems. Prior to the introduction of the DSL, engineers would describe the steps needed to configure a particular system in a handwritten XML document. In this paper, we outline the application domain, giv...
متن کامل